//Radical R's hacking notes
//Date: Who gives a damn?
//Purpose: Gee. What do YOU think?

Well, thanks to Demi and Dreamer_Nom at the SourceForge Board, I finally completed the fix. Below is the changes I made to the ROM. If it weren't for these guys, I would have probably never be able to figure out the solution. If you don't understand anything about programming or assembly, stop reading this. I mean it; otherwise, you're going to have a headache trying to understand this stuff... To make reading this more interesting than some boring techinal manual, I decided to do a Problem / Solution set. Don't look foward towards any other patches, unless I find a mistake or something. This is the only game that I have hacked and will hack. Now on with the show...

// Wahhh! I wanna use the in-game save! T_T

Well, the emulator doesn't support SetellaView memory, however:
at ac17: 50 -> 60 
at ac20: 69 19 -> a9 30 
Changes RD Rom from lo-rom to hi-rom to allow saving.(Dreamer_Nom for idea, Demi for explaining. I had no clue what the guy was talking about -_-)

//Great! Now I can save the game. But what the hell does the stuff at the top mean?

Oops. Looks like the game wants Unicode. (82, xx)(Dreamer_Nom) We have to
remap the pointer at c8ed to 30 5a to include expanded text at 5a30, a really LARGE
blank area in the rom (All FF): Type
82 61 82 85 82 87 82 89 82 8E 81 40 82 66 82 81 82 8D 82 85 00 00 (I figured out the code by myself, thank you very much, without any help I might add.)
Converted text: Begin Game

// Ok. That works. But the exit command crashes the emulator!

Hmm. Looks like the emulator is trying to access memory that doesn't exist.
So change the jump to 1) keep in the range of the memory and 2) restart the game.
Change e0b0: 5c3c5c10 -> 5c0aa0c0 - fixes jump. (resets the game now) (Believe it or not, I figured this one out on my own! :D)

// Sweet, but the name in the save slot is really funky...

Alright, this is the tricky part. What's happening is it's loading garbage data, so you have to "manually load and mirror the name" (Dreamer_Nom). 

Quote from Dreamer_Nom: (condensed from three posts)

At B843: Change A9 00 70 to 20 A0 5F 

Start at 5FA0:
DA PHX 
E2 20 SEP #20 
A2 05 LDX #$05 
BF 3F C2 C0 LDA $C0C23F,x 
9F 00 40 7E STA $7E4000,x 
9F 50 30 7E STA $7E3050,x 
9F 50 09 7E STA $7E0950,x 
CA DEX 
10 ED BPL $ED
A2 09 LDX #$09 
A9 FF LDA #$FF 
9F 06 40 7E STA $7E4006,x 
9F 56 30 7E STA $7E3056,x 
9F 56 09 7E STA $7E0956,x 
CA DEX 
10 F1 BPL $F1 
FA PLX 
C2 20 REP #20 
A9 00 70 LDA #$7000 ; Original code at $C0/B843 
60 RTS 

End Quote

// What gives? I ended up with "ddd" (or some other letters)!

Last thing to do: Go to C23F, Pad values with FF til C247
This gives a blank name on the menu. (Idea from Demi)

// Hey, what gives? Where did my "Begin Game" go? >=0

Calm down. I assume you have played through the whole game. The game uses a different string for this one, instead of "Begin Game". However, there is no handy pointers to remap here, so we have to make do with the space we are given. The location of this string is C8DB. Sounds familar? It should, being that's near where the pointer for the Begin Game code is! Therefore, without overwriting the pointer, there is room for only seven characters. You have to leave two pairs of zeros at the end, otherwise the display is gonna really screw up on you. Remember for the menu, you can only display Unicode (82, xx), so I used "Start", (I was gonna use "Continue", but it had one letter too many. -_-)

Code for "Start" (Me =D)

Insert at C8DB
82 69 82 72 82 94 82 81 82 92 82 94

//Hey, dummy! Why is my "X = Confirm" all screwed up!?!?!

Oops! Looks like that code and "Start" code (Not "Begin Game" code) is on the same line. Didn't see this one coming myself. "Confirm" -> "irm". D'oh! Well, we know we can't move the "Start" code, so let's see where the other code begins. C8CD, eh? Well, let's see if there are any calls to it. Now all call adresses are backwards, so it'll be CDC8 you'll be typing in. Hmm. I got two results. Well, let's change one of them at a time. At C8F1, let's change that one to another memory location. I did 5a48. Or in this case, 485a. I shouldn't have to explain how to set up the string for this. Just copy the string from where it is orginally and put two pairs of zeros at the end. Hmm. Looks like it froze up when you try to select it. That's a good thing. You know now that that relates to the exit command. So leave it alone for now. (I hope you made a backup, ALWAYS a good habit) Let's go to the other location, shall we? I got 382F3. Saw the same values. Changed CDC8 -> 5A48. Hmm... Didn't crash this time. It did what it was supposed to do... But how do we know it's actually being remapped to the new location? Simple. Change one of the letter. I changed the "X" to a "Y" (Increased the value by one). It works! And "Start" is fine, too!

(All by myself, NOT FUN)

// Yay! Now I have a fully working ROM!

Yes, you do. Hopefully, people with a #&@($ copier will enjoy this game now...